<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>obj.hasOwnProperty()</title>
</head>
<body>

</body>
<script>
    // 该方法只会对自身属性进行判断，查询自身属性中是否具有指定的属性，会返回一个布尔值
    // 继承来的属性一律返回false
    const obj = new Object();
    obj.property = 'pengyuyan'

    // 只要属性存在,也返回true
    obj.property2 = null
    obj.property3 = undefined

    Object.prototype.property4 = 0
    console.log(obj.hasOwnProperty('property')) // true
    console.log(obj.hasOwnProperty('property2')) // true
    console.log(obj.hasOwnProperty('property3')) // true
    console.log(obj.hasOwnProperty('property3')) // true
    // 可配合for...in 使用，可以避免其遍历继承来的属性
    const obj1 = {
        a:1,
        b:2,
        __proto__:{
            name:"pengyuyan",
            age:18
        }

    };
    for (let i in obj1) {
        if (obj1.hasOwnProperty(i)) {
            console.log(obj1[i]);  // 1,2  没有继承来的属性__proto__的值 name和age
        }
    }
</script>
</html>
